今天想在錶面上再加上今天是星期幾的資訊,
原本以為很簡單,應該一下就好,沒想到弄了半天,
首先因為Gregorian.info(Time.now(), Time.FORMAT_SHORT)
取出的星期資訊day_of_week
是1~7,對映週日~週六
我想了一個簡單的方法就是放一個array,
然後再拿取出的數字-1去array拿字串就好,
又因為我想要針對使用中文的裝置顯示中文,
所以大概像這樣:
//0~6 en
//7~13 zh_TW
const LOCALIZED_DAYS_OF_WEEK= [
"Sun","Mon","Tue","Wed","Thu","Fri","Sat",
"週日","週一","週二","週三","週四","週五","週六"
];
為了判斷要不要顯示中文,我查了一下api文件,
確實有個Toybox.System.getDeviceSettings()
可以取得DeviceSettings,裡面會有systemLanguage可以取用
但是我怎麼試,編譯都會出錯,
後來發現,只支援api 3.1.0以上的project...
可能就是因為我用的api是1.4.0所以才一直有錯吧
最後就用了一個不用程式控制的方式來達成了,
currentDate = Gregorian.info(Time.now(), Time.FORMAT_LONG);
var dayOfWeek = currentDate.day_of_week;
dc.drawText(dc.getWidth() / 2, 20, Graphics.FONT_SMALL, dayOfWeek, Graphics.TEXT_JUSTIFY_CENTER);
只要使用Time.FORMAT_LONG
,
取出的day_of_week
資訊就會根據裝置的設定自己轉換成對應的語言,
就像這樣,
按下模擬器上方Settings選單,把Language換成其他語言,顯示就會跟著改變了